/*
 * Camera.h
 *
 *  Created on: 12-05-2013
 *      Author: Jarek
 */

#ifndef CAMERA_H_
#define CAMERA_H_

#include "GlobalData.h"
#include "Math/EMatrix4x4.h"
#include "ENode.h"
#include "ETime.h"
#include "View.h"


//includes assimp
#include <scene.h>

class Camera : public Node, public View
{
public:
	float		fov;
	float		zNear;
	float		zFar;
	float		aspectRatio;

public:
	Camera();
	virtual ~Camera();

	void								createCamera(const aiCamera& camera);

	Matrix4x4<float>					getViewMatrix(const ETime& time);
	virtual Matrix4x4<float> 			getModelViewMatrix (const ETime& time, const Matrix4x4<float>& modelMatrix);
	virtual Matrix4x4<float> 			getModelViewProjectionMatrix(const ETime& time, const Matrix4x4<float>& modelMatrix);
};

#endif /* CAMERA_H_ */
